<?php
declare(strict_types=1);

namespace app\validate\api;

use think\Validate;

class ApiBaseValidate extends Validate
{
    protected $_v_model = null;

    // protected $rule = [];
    // protected $message = [];
    protected $regex = [
        'ids' => '^\d+(,\d+)*'
    ];

    // 额外数据
    protected $ex_data = [];
    public function getExData($key)
    {
        return $this->ex_data[$key] ?? null;
    }

    /**
     * 是否 在软删下是唯一的
     * 对应model 需要 id字段存在
     */
    protected function isSoftUnique($value, $rule, $data = [], $field = '', $title = '')
    {
        //  特殊需要 请在子类里 重写
        if ($this->_v_model != null) {
            $map = [
                [$field, '=', $value]
            ];
            // 修改
            if (isset($data['id']) && $data['id'] != '') {
                $map[] = ['id', '<>', $data['id']];
            }
            $t_re = $this->_v_model::where($map)->field($field)->find();

            return $t_re ? $title . '已存在:' . $value : true;
        }

        // 如果没设置 $this->_v_model 暂时就不判定 直返true
        return true;
    }
}
